﻿using UnityEngine;

public class Managers : MonoBehaviour {
	// === Public =====================================================================================================
	public static BodyManager Body { get; private set; }
	public static CameraManager Camera { get; private set; }
	public static ElementManager Element { get; private set; }
	public static FieldManager Field { get; private set; }
	public static FrameManager Frame { get; private set; }
	public static GameManager Game { get; private set; }
	public static GridManager Grid { get; private set; }
	public static GUIPanel GuiPanel { get; private set; }
	public static LevelManager Level { get; private set; }
	public static SnakeManager Snake { get; private set; }
	public static StoneManager Stone { get; private set; }

	public static ManagerTexture Texture { get; private set; }
	public static ManagerUI UI { get; private set; }

	// === Private ====================================================================================================
	static Managers() {
		Body = BodyManager.CreateInstance();
		Camera = CameraManager.CreateInstance();
		Element = ElementManager.CreateInstance();
		Field = FieldManager.CreateInstance();
		Frame = FrameManager.CreateInstance();
		Game = GameManager.CreateInstance();
		Grid = GridManager.CreateInstance();
		GuiPanel = GUIPanel.CreateInstance();
		Level = LevelManager.CreateInstance();
		Snake = SnakeManager.CreateInstance();
		Stone = StoneManager.CreateInstance();

		Texture = ManagerTexture.CreateInstance();
		Texture.Init();
		UI = ManagerUI.CreateInstance();
	}
}